﻿using System;
using System.Data;
using System.Configuration;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Data.SqlClient;
using System.Text;


/// <summary>
/// Summary description for Pessoa
/// </summary>
public class Pessoa
{
    private String stConn = ConfigurationManager.ConnectionStrings["DefaultConnectionString"].ConnectionString;
   
    public Pessoa()
    {
        this.idPessoa = null;
        this.idEstado = null;
        this.usuario = null;
        this.senha = null;
        this.nome = null;
        this.sexo = null;
        this.cgccpf = null;
        this.rg = null;
        this.dataNascimento = null;
        this.endereco = null;
        this.cidade = null;
        this.cep = null;
        this.fonePrincipal = null;
        this.foneCelular = null;
        this.email = null;
        this.inscricaoEstadual = null;
        this.observacao = null;
        this.dataAdmissao = null;
        this.dataDemissao = null;
        this.comissao = null;
        this.dataCadastro = null;
        this.horarioini = null;
        this.horariofim = null;
        this.horarioinit = null;
        this.horariofimt = null;
     
    }

    public DataTable buscacheck(String idPessoa)
    {
        DataTable relcheck = new DataTable("check");
        string consulta = "Select * from pessoaRelTipo where idPessoa = " + int.Parse(idPessoa);
        SqlDataAdapter adpt = new SqlDataAdapter(consulta, stConn);

        adpt.Fill(relcheck);
        return relcheck;
    }

    //utilizado pelo login
    public Pessoa(string user, string senha)
    {
        this.usuario = user;
        this.senha = senha;     
    }
  
    //utilizado no login
    public Boolean entrar(string user, string senha)
    {
        //Cria a consulta e efetua a conexao no banco de dados para consultar o usuario
        DataTable dtUsuario = new DataTable("usuarios");

        string consulta = "SELECT * FROM pessoa p INNER JOIN pessoaRelTipo r ON p.idPessoa = r.idPessoa WHERE p.usuario ='" + user + "'";

        SqlDataAdapter adpt = new SqlDataAdapter(consulta, stConn);

        adpt.Fill(dtUsuario);

        //se nao existirem linhas, é pq nao foi encontrado nenhum registro, logo
        //nao foi encontrado nenhum usuario
        if (dtUsuario.Rows.Count == 0)
        {
            //mensagem de usuario nao encontrado
            return false;
        }
        else
        {
            //aqui será feita a codificacao se o usuario for encontrado
            if (dtUsuario.Rows[0]["senha"].ToString().Equals(senha))
            {
                //senha confere
                //instancia objeto usuario
                //insere objeto usuario na sessao
                //acessa a tela principal
                Pessoa usr = new Pessoa(dtUsuario.Rows[0]["usuario"].ToString(),
                                            dtUsuario.Rows[0]["senha"].ToString());

                return true;
            }
            else
            {
                //senha nao confere
                return false;
                //return("Senha não confere!");
            }
        }
    }

    //utilizada no usuarionovo
    private void pesquisa()
    {
        string sql = "select max(idPessoa) as idPessoa from pessoa";
        DataTable dtbdados = new DataTable();
        Execute a = new Execute();

        dtbdados = a.Pesquisar(sql);

        if (dtbdados.Rows.Count > 0)
        {
            this.idPessoa = dtbdados.Rows[0]["idPessoa"].ToString();            
        }
    }
   

    //utilizada no cadastronovo
    private void load(String cpf)//usuario aqui
    {
        string sql = "select * from pessoa where cgccpf =" + int.Parse(cpf);
        DataTable dtbdados = new DataTable();
        Execute a = new Execute();

        dtbdados = a.Pesquisar(sql);

        if (dtbdados.Rows.Count > 0)
        {           
            this.idPessoa = dtbdados.Rows[0]["idPessoa"].ToString();            
            this.idEstado = dtbdados.Rows[0]["idEstado"].ToString();
            this.usuario = dtbdados.Rows[0]["usuario"].ToString();
            this.senha = dtbdados.Rows[0]["senha"].ToString();
            this.nome = dtbdados.Rows[0]["nome"].ToString();
            this.sexo = dtbdados.Rows[0]["sexo"].ToString();
            this.cgccpf = dtbdados.Rows[0]["cgccpf"].ToString();
            this.rg = dtbdados.Rows[0]["rg"].ToString();
            this.dataNascimento = dtbdados.Rows[0]["dataNascimento"].ToString();
            this.endereco = dtbdados.Rows[0]["endereco"].ToString();
            this.cidade = dtbdados.Rows[0]["cidade"].ToString();
            this.cep = dtbdados.Rows[0]["cep"].ToString();
            this.fonePrincipal = dtbdados.Rows[0]["fonePrincipal"].ToString();
            this.foneCelular = dtbdados.Rows[0]["foneCelular"].ToString();
            this.email = dtbdados.Rows[0]["email"].ToString();
            this.inscricaoEstadual = dtbdados.Rows[0]["inscricaoEstadual"].ToString();
            this.observacao = dtbdados.Rows[0]["observacao"].ToString();
            this.dataAdmissao = dtbdados.Rows[0]["dataAdmissao"].ToString();
            this.dataDemissao = dtbdados.Rows[0]["dataDemissao"].ToString();
            this.comissao = dtbdados.Rows[0]["comissao"].ToString();
            this.dataCadastro = dtbdados.Rows[0]["dataCadastro"].ToString();
            this.horarioini = dtbdados.Rows[0]["horarioini"].ToString();
            this.horariofim = dtbdados.Rows[0]["horariofim"].ToString();
            this.horarioinit = dtbdados.Rows[0]["horarioinit"].ToString();
            this.horariofimt = dtbdados.Rows[0]["horariofimt"].ToString(); 
        }
    }

     public Pessoa(string cpf)
    {
        //Limpar();
        load(cpf);        
        //CarregaPermissoes(user);
    }

     private void CarregaPermissoes(string Usuario)
     {
         StringBuilder sbQuery = new StringBuilder();

         sbQuery.Append("SELECT tipopessoa.* FROM pessoa WHERE usuario = '");
         sbQuery.Append(Usuario);
         sbQuery.Append("'");

         //Execute oExecute = new Execute();

         //        SqlConnection oConn = new SqlConnection(stConn);
         SqlCommand oCommand = new SqlCommand(sbQuery.ToString(), Execute.RetornaConexaoDB());

         SqlDataAdapter oAdapter = new SqlDataAdapter(oCommand);
         DataTable tbUsuario = new DataTable();

         oCommand.Connection.Open();

         oAdapter.Fill(tbUsuario);

         if (tbUsuario.Rows.Count > 0)
         {
             DataRow oLinhaUsuario = tbUsuario.Rows[0];

             if (oLinhaUsuario["permiteagenda"].ToString() == "True")
                 PermiteAgenda = true;

             if (oLinhaUsuario["permiteempresa"].ToString() == "False")
                 PermiteEmpresa = true;
         }
         else
         {
             PermiteAgenda = false;
             PermiteEmpresa = false;
         }

         oCommand.Connection.Close();
     }

     //permissões
     public bool PermiteAgenda
     {
         get;
         set;
     }

     public bool PermiteEmpresa
     {
         get;
         set;
     }

     public void busca(String cpf)
     {
         String sql = "Select * from pesssoas where cgccpf = " + int.Parse(cpf);
         DataTable dtbdados = new DataTable();
         Execute a = new Execute();

         dtbdados = a.Pesquisar(sql);

         if (dtbdados.Rows.Count > 0)
         {
             
             this.idPessoa = dtbdados.Rows[0]["idPessoa"].ToString();
             this.idEstado = dtbdados.Rows[0]["idEstado"].ToString();
             this.usuario = dtbdados.Rows[0]["usuario"].ToString();
             //this.nome = nome;
             //this.sexo = sexo;
             //this.cpf = cpf;
             //this.rg = rg;
             //this.dataNascimento = dataNascimento;
             //this.endereco = endereco;
             //this.cidade = cidade;
             //this.cep = cep;
             //this.fonePrincipal = fonePrincipal;
             //this.foneCelular = foneCelular;
             //this.email = email;
             //this.inscricaoEstadual = inscricaoEstadual;
             //this.observacao = observacao;
             //this.dataAdmissao = dataAdmissao;
             //this.dataDemissao = dataDemissao;
             //this.comissao = comissao;
             //this.dataCadastro = dataCadastro;
             //this.horarioini = horarioini;
             //this.horariofim = horariofim;
         }             
     }

 //get e sets
     public String idPessoa
     {
         get; //{ return this.idPessoa; }
         set;// { this.idPessoa = value; }
     }
    
    public string idEstado
    {
        get;// { return this.idEstado; }
        set;// { this.idEstado = value; }
    }
    public String usuario
    {
        get;// { return this.usuario; }
        set;// { this.usuario = value; }
    }
    public String senha
    {
        get;// { return this.senha; }
        set;// { this.senha = value; }
    }
    public String nome
    {
        get;// { return this.nome; }
        set;// { this.nome = value; }
    }
    public String sexo
    {
        get;// { return this.sexo; }
        set;// { this.sexo = value; }
    }
    public String cgccpf
    {
        get;// { return this.cpf; }
        set;// { this.cpf = value; }
    }
    public String rg
    {
        get;// { return this.rg; }
        set;// { this.rg = value; }
    }
    public String dataNascimento
    {
        get;// { return this.dataNascimento; }
        set;// { this.dataNascimento = value; }
    }
    public String endereco
    {
        get;// { return this.endereco; }
        set;// { this.endereco = value; }
    }
    public String cidade
    {
        get;// { return this.cidade; }
        set;// { this.cidade = value; }
    }
    public String cep
    {
        get;// { return this.cidade; }
        set;// { this.cidade = value; }
    }
    public String fonePrincipal
    {
        get;// { return this.fonePrincipal; }
        set;// { this.fonePrincipal = value; }
    }
    public String foneCelular
    {
        get;// { return this.foneCelular; }
        set;// { this.foneCelular = value; }
    }
    public String email
    {
        get;// { return this.email; }
        set;// { this.email = value; }
    }
    public String inscricaoEstadual
    {
        get;// { return this.inscricaoEstadual; }
        set;// { this.inscricaoEstadual = value; }
    }
    public String observacao
    {
        get;// { return this.observacao; }
        set;// { this.observacao = value; }
    }
    public String dataAdmissao
    {
        get;// { return this.dataAdmissao; }
        set;// { this.dataAdmissao = value; }
    }
    public String dataDemissao
    {
        get;// { return this.dataDemissao; }
        set;// { this.dataDemissao = value; }
    }
    public String comissao
    {
        get;// { return this.comissao; }
        set;// { this.comissao = value; }
    }
    public String dataCadastro
    {
        get;// { return this.dataCadastro; }
        set;// { this.dataCadastro = value; }
    }
    public String horarioini
    {
        get;// { return this.horarioini; }
        set;// { this.horarioini = value; }
    }

    public String horariofim
    {
        get;// { return this.horariofim; }
        set;// { this.horariofim = value; }
    }
    public String horarioinit
    {
        get;// { return this.horarioini; }
        set;// { this.horarioini = value; }
    }

    public String horariofimt
    {
        get;// { return this.horariofim; }
        set;// { this.horariofim = value; }
    }
    }

